import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class program06 {
    public static void main(String[] args) {
//        题目：输入两个正整数m和n，求其最大公约数和最小公倍数。
//        程序分析：利用辗除法。

        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        int n = scanner.nextInt();

        for (Integer i1 :
                getFactor(m)) {
            for (Integer i2 :
                    getFactor(n)) {
                if (i1 == i2) {
                    System.out.println("最大公约数：" + i1);
                    System.out.println("最小公倍数：" + m*n/i1);
                    return;
                }
            }
        }
    }

    private static List<Integer> getFactor(int num) {
        List<Integer> list = new ArrayList<>();
        for (int i = 2; i <= num; i++) {
            while (num%i == 0) {
                num = num/i;
                list.add(i);
            }
        }
        return list;
    }
}
